/*******************************************************************************
 * Copyright (c) 2022 BestSolution.at and others.
 *  
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v.2.0 which is available at
 * https://www.eclipse.org/legal/epl-2.0.
 *  
 * SPDX-License-Identifier: EPL-2.0
 *  
 * Contributors:
 *     BestSolution.at - initial API and implementation
 *******************************************************************************/
/*
 * generated by Xtext
 */
package org.eclipse.fx.ide.l10n.services;

import com.google.inject.Singleton;
import com.google.inject.Inject;

import java.util.List;

import org.eclipse.xtext.*;
import org.eclipse.xtext.service.GrammarProvider;
import org.eclipse.xtext.service.AbstractElementFinder.*;

import org.eclipse.xtext.common.services.TerminalsGrammarAccess;

@Singleton
public class NLSDslGrammarAccess extends AbstractGrammarElementFinder {
	
	
	public class NLSElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NLS");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cPackageAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cPackagePackageDeclarationParserRuleCall_0_0 = (RuleCall)cPackageAssignment_0.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cBundleListAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cBundleListNLSBundleParserRuleCall_2_0 = (RuleCall)cBundleListAssignment_2.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_3 = (Keyword)cGroup.eContents().get(3);
		
		//NLS:
		//	package=PackageDeclaration? "{" bundleList+=NLSBundle+ "}";
		@Override public ParserRule getRule() { return rule; }

		//package=PackageDeclaration? "{" bundleList+=NLSBundle+ "}"
		public Group getGroup() { return cGroup; }

		//package=PackageDeclaration?
		public Assignment getPackageAssignment_0() { return cPackageAssignment_0; }

		//PackageDeclaration
		public RuleCall getPackagePackageDeclarationParserRuleCall_0_0() { return cPackagePackageDeclarationParserRuleCall_0_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_1() { return cLeftCurlyBracketKeyword_1; }

		//bundleList+=NLSBundle+
		public Assignment getBundleListAssignment_2() { return cBundleListAssignment_2; }

		//NLSBundle
		public RuleCall getBundleListNLSBundleParserRuleCall_2_0() { return cBundleListNLSBundleParserRuleCall_2_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_3() { return cRightCurlyBracketKeyword_3; }
	}

	public class PackageDeclarationElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "PackageDeclaration");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cPackageKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameQualifiedNameParserRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		
		//PackageDeclaration:
		//	"package" name=QualifiedName;
		@Override public ParserRule getRule() { return rule; }

		//"package" name=QualifiedName
		public Group getGroup() { return cGroup; }

		//"package"
		public Keyword getPackageKeyword_0() { return cPackageKeyword_0; }

		//name=QualifiedName
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//QualifiedName
		public RuleCall getNameQualifiedNameParserRuleCall_1_0() { return cNameQualifiedNameParserRuleCall_1_0; }
	}

	public class NLSBundleElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NLSBundle");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cBundleKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Keyword cDefaultKeyword_2 = (Keyword)cGroup.eContents().get(2);
		private final Assignment cLangAssignment_3 = (Assignment)cGroup.eContents().get(3);
		private final RuleCall cLangIDTerminalRuleCall_3_0 = (RuleCall)cLangAssignment_3.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_4 = (Keyword)cGroup.eContents().get(4);
		private final Assignment cFormatterListAssignment_5 = (Assignment)cGroup.eContents().get(5);
		private final RuleCall cFormatterListNLSFormatterParserRuleCall_5_0 = (RuleCall)cFormatterListAssignment_5.eContents().get(0);
		private final Assignment cMessageEntryListAssignment_6 = (Assignment)cGroup.eContents().get(6);
		private final RuleCall cMessageEntryListMessageEntryParserRuleCall_6_0 = (RuleCall)cMessageEntryListAssignment_6.eContents().get(0);
		private final Group cGroup_7 = (Group)cGroup.eContents().get(7);
		private final Keyword cIncludedBundlesKeyword_7_0 = (Keyword)cGroup_7.eContents().get(0);
		private final Assignment cIncludedBundleListAssignment_7_1 = (Assignment)cGroup_7.eContents().get(1);
		private final CrossReference cIncludedBundleListNLSBundleCrossReference_7_1_0 = (CrossReference)cIncludedBundleListAssignment_7_1.eContents().get(0);
		private final RuleCall cIncludedBundleListNLSBundleQualifiedNameParserRuleCall_7_1_0_1 = (RuleCall)cIncludedBundleListNLSBundleCrossReference_7_1_0.eContents().get(1);
		private final Group cGroup_7_2 = (Group)cGroup_7.eContents().get(2);
		private final Keyword cCommaKeyword_7_2_0 = (Keyword)cGroup_7_2.eContents().get(0);
		private final Assignment cIncludedBundleListAssignment_7_2_1 = (Assignment)cGroup_7_2.eContents().get(1);
		private final CrossReference cIncludedBundleListNLSBundleCrossReference_7_2_1_0 = (CrossReference)cIncludedBundleListAssignment_7_2_1.eContents().get(0);
		private final RuleCall cIncludedBundleListNLSBundleQualifiedNameParserRuleCall_7_2_1_0_1 = (RuleCall)cIncludedBundleListNLSBundleCrossReference_7_2_1_0.eContents().get(1);
		private final Keyword cRightCurlyBracketKeyword_8 = (Keyword)cGroup.eContents().get(8);
		
		//NLSBundle:
		//	"bundle" name=ID "default" lang=ID "{" formatterList+=NLSFormatter* messageEntryList+=MessageEntry+
		//	("included-bundles" includedBundleList+=[NLSBundle|QualifiedName] (","
		//	includedBundleList+=[NLSBundle|QualifiedName])*)? "}";
		@Override public ParserRule getRule() { return rule; }

		//"bundle" name=ID "default" lang=ID "{" formatterList+=NLSFormatter* messageEntryList+=MessageEntry+ ("included-bundles"
		//includedBundleList+=[NLSBundle|QualifiedName] ("," includedBundleList+=[NLSBundle|QualifiedName])*)? "}"
		public Group getGroup() { return cGroup; }

		//"bundle"
		public Keyword getBundleKeyword_0() { return cBundleKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//"default"
		public Keyword getDefaultKeyword_2() { return cDefaultKeyword_2; }

		//lang=ID
		public Assignment getLangAssignment_3() { return cLangAssignment_3; }

		//ID
		public RuleCall getLangIDTerminalRuleCall_3_0() { return cLangIDTerminalRuleCall_3_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_4() { return cLeftCurlyBracketKeyword_4; }

		//formatterList+=NLSFormatter*
		public Assignment getFormatterListAssignment_5() { return cFormatterListAssignment_5; }

		//NLSFormatter
		public RuleCall getFormatterListNLSFormatterParserRuleCall_5_0() { return cFormatterListNLSFormatterParserRuleCall_5_0; }

		//messageEntryList+=MessageEntry+
		public Assignment getMessageEntryListAssignment_6() { return cMessageEntryListAssignment_6; }

		//MessageEntry
		public RuleCall getMessageEntryListMessageEntryParserRuleCall_6_0() { return cMessageEntryListMessageEntryParserRuleCall_6_0; }

		//("included-bundles" includedBundleList+=[NLSBundle|QualifiedName] ("," includedBundleList+=[NLSBundle|QualifiedName])*)?
		public Group getGroup_7() { return cGroup_7; }

		//"included-bundles"
		public Keyword getIncludedBundlesKeyword_7_0() { return cIncludedBundlesKeyword_7_0; }

		//includedBundleList+=[NLSBundle|QualifiedName]
		public Assignment getIncludedBundleListAssignment_7_1() { return cIncludedBundleListAssignment_7_1; }

		//[NLSBundle|QualifiedName]
		public CrossReference getIncludedBundleListNLSBundleCrossReference_7_1_0() { return cIncludedBundleListNLSBundleCrossReference_7_1_0; }

		//QualifiedName
		public RuleCall getIncludedBundleListNLSBundleQualifiedNameParserRuleCall_7_1_0_1() { return cIncludedBundleListNLSBundleQualifiedNameParserRuleCall_7_1_0_1; }

		//("," includedBundleList+=[NLSBundle|QualifiedName])*
		public Group getGroup_7_2() { return cGroup_7_2; }

		//","
		public Keyword getCommaKeyword_7_2_0() { return cCommaKeyword_7_2_0; }

		//includedBundleList+=[NLSBundle|QualifiedName]
		public Assignment getIncludedBundleListAssignment_7_2_1() { return cIncludedBundleListAssignment_7_2_1; }

		//[NLSBundle|QualifiedName]
		public CrossReference getIncludedBundleListNLSBundleCrossReference_7_2_1_0() { return cIncludedBundleListNLSBundleCrossReference_7_2_1_0; }

		//QualifiedName
		public RuleCall getIncludedBundleListNLSBundleQualifiedNameParserRuleCall_7_2_1_0_1() { return cIncludedBundleListNLSBundleQualifiedNameParserRuleCall_7_2_1_0_1; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_8() { return cRightCurlyBracketKeyword_8; }
	}

	public class NLSFormatterElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "NLSFormatter");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Keyword cFormatterKeyword_0 = (Keyword)cGroup.eContents().get(0);
		private final Assignment cNameAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cNameIDTerminalRuleCall_1_0 = (RuleCall)cNameAssignment_1.eContents().get(0);
		private final Assignment cClassRefAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cClassRefQualifiedNameParserRuleCall_2_0 = (RuleCall)cClassRefAssignment_2.eContents().get(0);
		
		//NLSFormatter:
		//	"formatter" name=ID classRef=QualifiedName;
		@Override public ParserRule getRule() { return rule; }

		//"formatter" name=ID classRef=QualifiedName
		public Group getGroup() { return cGroup; }

		//"formatter"
		public Keyword getFormatterKeyword_0() { return cFormatterKeyword_0; }

		//name=ID
		public Assignment getNameAssignment_1() { return cNameAssignment_1; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_1_0() { return cNameIDTerminalRuleCall_1_0; }

		//classRef=QualifiedName
		public Assignment getClassRefAssignment_2() { return cClassRefAssignment_2; }

		//QualifiedName
		public RuleCall getClassRefQualifiedNameParserRuleCall_2_0() { return cClassRefQualifiedNameParserRuleCall_2_0; }
	}

	public class MessageEntryElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MessageEntry");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cLeftParenthesisKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final Assignment cParamListAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cParamListMessageParamParserRuleCall_1_1_0 = (RuleCall)cParamListAssignment_1_1.eContents().get(0);
		private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2);
		private final Keyword cCommaKeyword_1_2_0 = (Keyword)cGroup_1_2.eContents().get(0);
		private final Assignment cParamListAssignment_1_2_1 = (Assignment)cGroup_1_2.eContents().get(1);
		private final RuleCall cParamListMessageParamParserRuleCall_1_2_1_0 = (RuleCall)cParamListAssignment_1_2_1.eContents().get(0);
		private final Keyword cRightParenthesisKeyword_1_3 = (Keyword)cGroup_1.eContents().get(3);
		private final Alternatives cAlternatives_2 = (Alternatives)cGroup.eContents().get(2);
		private final Group cGroup_2_0 = (Group)cAlternatives_2.eContents().get(0);
		private final Keyword cLeftCurlyBracketKeyword_2_0_0 = (Keyword)cGroup_2_0.eContents().get(0);
		private final Assignment cMessageListAssignment_2_0_1 = (Assignment)cGroup_2_0.eContents().get(1);
		private final RuleCall cMessageListMessageParserRuleCall_2_0_1_0 = (RuleCall)cMessageListAssignment_2_0_1.eContents().get(0);
		private final Group cGroup_2_0_2 = (Group)cGroup_2_0.eContents().get(2);
		private final Keyword cCommaKeyword_2_0_2_0 = (Keyword)cGroup_2_0_2.eContents().get(0);
		private final Assignment cMessageListAssignment_2_0_2_1 = (Assignment)cGroup_2_0_2.eContents().get(1);
		private final RuleCall cMessageListMessageParserRuleCall_2_0_2_1_0 = (RuleCall)cMessageListAssignment_2_0_2_1.eContents().get(0);
		private final Keyword cRightCurlyBracketKeyword_2_0_3 = (Keyword)cGroup_2_0.eContents().get(3);
		private final Group cGroup_2_1 = (Group)cAlternatives_2.eContents().get(1);
		private final Keyword cLeftSquareBracketKeyword_2_1_0 = (Keyword)cGroup_2_1.eContents().get(0);
		private final Assignment cEntryRefAssignment_2_1_1 = (Assignment)cGroup_2_1.eContents().get(1);
		private final CrossReference cEntryRefMessageEntryCrossReference_2_1_1_0 = (CrossReference)cEntryRefAssignment_2_1_1.eContents().get(0);
		private final RuleCall cEntryRefMessageEntryQualifiedNameParserRuleCall_2_1_1_0_1 = (RuleCall)cEntryRefMessageEntryCrossReference_2_1_1_0.eContents().get(1);
		private final Keyword cRightSquareBracketKeyword_2_1_2 = (Keyword)cGroup_2_1.eContents().get(2);
		
		//MessageEntry:
		//	name=ID ("(" paramList+=MessageParam ("," paramList+=MessageParam)* ")")? ("{" messageList+=Message (","
		//	messageList+=Message)* "}" | "[" entryRef=[MessageEntry|QualifiedName] "]");
		@Override public ParserRule getRule() { return rule; }

		//name=ID ("(" paramList+=MessageParam ("," paramList+=MessageParam)* ")")? ("{" messageList+=Message (","
		//messageList+=Message)* "}" | "[" entryRef=[MessageEntry|QualifiedName] "]")
		public Group getGroup() { return cGroup; }

		//name=ID
		public Assignment getNameAssignment_0() { return cNameAssignment_0; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }

		//("(" paramList+=MessageParam ("," paramList+=MessageParam)* ")")?
		public Group getGroup_1() { return cGroup_1; }

		//"("
		public Keyword getLeftParenthesisKeyword_1_0() { return cLeftParenthesisKeyword_1_0; }

		//paramList+=MessageParam
		public Assignment getParamListAssignment_1_1() { return cParamListAssignment_1_1; }

		//MessageParam
		public RuleCall getParamListMessageParamParserRuleCall_1_1_0() { return cParamListMessageParamParserRuleCall_1_1_0; }

		//("," paramList+=MessageParam)*
		public Group getGroup_1_2() { return cGroup_1_2; }

		//","
		public Keyword getCommaKeyword_1_2_0() { return cCommaKeyword_1_2_0; }

		//paramList+=MessageParam
		public Assignment getParamListAssignment_1_2_1() { return cParamListAssignment_1_2_1; }

		//MessageParam
		public RuleCall getParamListMessageParamParserRuleCall_1_2_1_0() { return cParamListMessageParamParserRuleCall_1_2_1_0; }

		//")"
		public Keyword getRightParenthesisKeyword_1_3() { return cRightParenthesisKeyword_1_3; }

		//"{" messageList+=Message ("," messageList+=Message)* "}" | "[" entryRef=[MessageEntry|QualifiedName] "]"
		public Alternatives getAlternatives_2() { return cAlternatives_2; }

		//"{" messageList+=Message ("," messageList+=Message)* "}"
		public Group getGroup_2_0() { return cGroup_2_0; }

		//"{"
		public Keyword getLeftCurlyBracketKeyword_2_0_0() { return cLeftCurlyBracketKeyword_2_0_0; }

		//messageList+=Message
		public Assignment getMessageListAssignment_2_0_1() { return cMessageListAssignment_2_0_1; }

		//Message
		public RuleCall getMessageListMessageParserRuleCall_2_0_1_0() { return cMessageListMessageParserRuleCall_2_0_1_0; }

		//("," messageList+=Message)*
		public Group getGroup_2_0_2() { return cGroup_2_0_2; }

		//","
		public Keyword getCommaKeyword_2_0_2_0() { return cCommaKeyword_2_0_2_0; }

		//messageList+=Message
		public Assignment getMessageListAssignment_2_0_2_1() { return cMessageListAssignment_2_0_2_1; }

		//Message
		public RuleCall getMessageListMessageParserRuleCall_2_0_2_1_0() { return cMessageListMessageParserRuleCall_2_0_2_1_0; }

		//"}"
		public Keyword getRightCurlyBracketKeyword_2_0_3() { return cRightCurlyBracketKeyword_2_0_3; }

		//"[" entryRef=[MessageEntry|QualifiedName] "]"
		public Group getGroup_2_1() { return cGroup_2_1; }

		//"["
		public Keyword getLeftSquareBracketKeyword_2_1_0() { return cLeftSquareBracketKeyword_2_1_0; }

		//entryRef=[MessageEntry|QualifiedName]
		public Assignment getEntryRefAssignment_2_1_1() { return cEntryRefAssignment_2_1_1; }

		//[MessageEntry|QualifiedName]
		public CrossReference getEntryRefMessageEntryCrossReference_2_1_1_0() { return cEntryRefMessageEntryCrossReference_2_1_1_0; }

		//QualifiedName
		public RuleCall getEntryRefMessageEntryQualifiedNameParserRuleCall_2_1_1_0_1() { return cEntryRefMessageEntryQualifiedNameParserRuleCall_2_1_1_0_1; }

		//"]"
		public Keyword getRightSquareBracketKeyword_2_1_2() { return cRightSquareBracketKeyword_2_1_2; }
	}

	public class MessageParamElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "MessageParam");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cPredefinedAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cPredefinedPredefinedTypesEnumRuleCall_0_0 = (RuleCall)cPredefinedAssignment_0.eContents().get(0);
		private final Assignment cVarAssignment_1 = (Assignment)cGroup.eContents().get(1);
		private final RuleCall cVarIDTerminalRuleCall_1_0 = (RuleCall)cVarAssignment_1.eContents().get(0);
		
		//MessageParam:
		//	predefined=PredefinedTypes var=ID;
		@Override public ParserRule getRule() { return rule; }

		//predefined=PredefinedTypes var=ID
		public Group getGroup() { return cGroup; }

		//predefined=PredefinedTypes
		public Assignment getPredefinedAssignment_0() { return cPredefinedAssignment_0; }

		//PredefinedTypes
		public RuleCall getPredefinedPredefinedTypesEnumRuleCall_0_0() { return cPredefinedPredefinedTypesEnumRuleCall_0_0; }

		//var=ID
		public Assignment getVarAssignment_1() { return cVarAssignment_1; }

		//ID
		public RuleCall getVarIDTerminalRuleCall_1_0() { return cVarIDTerminalRuleCall_1_0; }
	}

	public class MessageElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "Message");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cNameAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cNameIDTerminalRuleCall_0_0 = (RuleCall)cNameAssignment_0.eContents().get(0);
		private final Keyword cColonKeyword_1 = (Keyword)cGroup.eContents().get(1);
		private final Assignment cMessageAssignment_2 = (Assignment)cGroup.eContents().get(2);
		private final RuleCall cMessageRichStringParserRuleCall_2_0 = (RuleCall)cMessageAssignment_2.eContents().get(0);
		
		//Message:
		//	name=ID ":" message=RichString / *| '[' messageRef=[Message|QualifiedName] ']'* /;
		@Override public ParserRule getRule() { return rule; }

		//name=ID ":" message=RichString / *| '[' messageRef=[Message|QualifiedName] ']'* /
		public Group getGroup() { return cGroup; }

		//name=ID
		public Assignment getNameAssignment_0() { return cNameAssignment_0; }

		//ID
		public RuleCall getNameIDTerminalRuleCall_0_0() { return cNameIDTerminalRuleCall_0_0; }

		//":"
		public Keyword getColonKeyword_1() { return cColonKeyword_1; }

		//message=RichString
		public Assignment getMessageAssignment_2() { return cMessageAssignment_2; }

		//RichString
		public RuleCall getMessageRichStringParserRuleCall_2_0() { return cMessageRichStringParserRuleCall_2_0; }
	}

	public class RichStringElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RichString");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final Assignment cExpressionsAssignment_0 = (Assignment)cAlternatives.eContents().get(0);
		private final RuleCall cExpressionsRichStringLiteralParserRuleCall_0_0 = (RuleCall)cExpressionsAssignment_0.eContents().get(0);
		private final Group cGroup_1 = (Group)cAlternatives.eContents().get(1);
		private final Assignment cExpressionsAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
		private final RuleCall cExpressionsRichStringLiteralStartParserRuleCall_1_0_0 = (RuleCall)cExpressionsAssignment_1_0.eContents().get(0);
		private final Assignment cExpressionsAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final RuleCall cExpressionsRichVarPartParserRuleCall_1_1_0 = (RuleCall)cExpressionsAssignment_1_1.eContents().get(0);
		private final Group cGroup_1_2 = (Group)cGroup_1.eContents().get(2);
		private final Assignment cExpressionsAssignment_1_2_0 = (Assignment)cGroup_1_2.eContents().get(0);
		private final RuleCall cExpressionsRichStringLiteralInbetweenParserRuleCall_1_2_0_0 = (RuleCall)cExpressionsAssignment_1_2_0.eContents().get(0);
		private final Assignment cExpressionsAssignment_1_2_1 = (Assignment)cGroup_1_2.eContents().get(1);
		private final RuleCall cExpressionsRichVarPartParserRuleCall_1_2_1_0 = (RuleCall)cExpressionsAssignment_1_2_1.eContents().get(0);
		private final Assignment cExpressionsAssignment_1_3 = (Assignment)cGroup_1.eContents().get(3);
		private final RuleCall cExpressionsRichStringLiteralEndParserRuleCall_1_3_0 = (RuleCall)cExpressionsAssignment_1_3.eContents().get(0);
		
		//RichString:
		//	expressions+=RichStringLiteral | expressions+=RichStringLiteralStart expressions+=RichVarPart?
		//	(expressions+=RichStringLiteralInbetween expressions+=RichVarPart?)* expressions+=RichStringLiteralEnd;
		@Override public ParserRule getRule() { return rule; }

		//expressions+=RichStringLiteral | expressions+=RichStringLiteralStart expressions+=RichVarPart?
		//(expressions+=RichStringLiteralInbetween expressions+=RichVarPart?)* expressions+=RichStringLiteralEnd
		public Alternatives getAlternatives() { return cAlternatives; }

		//expressions+=RichStringLiteral
		public Assignment getExpressionsAssignment_0() { return cExpressionsAssignment_0; }

		//RichStringLiteral
		public RuleCall getExpressionsRichStringLiteralParserRuleCall_0_0() { return cExpressionsRichStringLiteralParserRuleCall_0_0; }

		//expressions+=RichStringLiteralStart expressions+=RichVarPart? (expressions+=RichStringLiteralInbetween
		//expressions+=RichVarPart?)* expressions+=RichStringLiteralEnd
		public Group getGroup_1() { return cGroup_1; }

		//expressions+=RichStringLiteralStart
		public Assignment getExpressionsAssignment_1_0() { return cExpressionsAssignment_1_0; }

		//RichStringLiteralStart
		public RuleCall getExpressionsRichStringLiteralStartParserRuleCall_1_0_0() { return cExpressionsRichStringLiteralStartParserRuleCall_1_0_0; }

		//expressions+=RichVarPart?
		public Assignment getExpressionsAssignment_1_1() { return cExpressionsAssignment_1_1; }

		//RichVarPart
		public RuleCall getExpressionsRichVarPartParserRuleCall_1_1_0() { return cExpressionsRichVarPartParserRuleCall_1_1_0; }

		//(expressions+=RichStringLiteralInbetween expressions+=RichVarPart?)*
		public Group getGroup_1_2() { return cGroup_1_2; }

		//expressions+=RichStringLiteralInbetween
		public Assignment getExpressionsAssignment_1_2_0() { return cExpressionsAssignment_1_2_0; }

		//RichStringLiteralInbetween
		public RuleCall getExpressionsRichStringLiteralInbetweenParserRuleCall_1_2_0_0() { return cExpressionsRichStringLiteralInbetweenParserRuleCall_1_2_0_0; }

		//expressions+=RichVarPart?
		public Assignment getExpressionsAssignment_1_2_1() { return cExpressionsAssignment_1_2_1; }

		//RichVarPart
		public RuleCall getExpressionsRichVarPartParserRuleCall_1_2_1_0() { return cExpressionsRichVarPartParserRuleCall_1_2_1_0; }

		//expressions+=RichStringLiteralEnd
		public Assignment getExpressionsAssignment_1_3() { return cExpressionsAssignment_1_3; }

		//RichStringLiteralEnd
		public RuleCall getExpressionsRichStringLiteralEndParserRuleCall_1_3_0() { return cExpressionsRichStringLiteralEndParserRuleCall_1_3_0; }
	}

	public class RichStringLiteralElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RichStringLiteral");
		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
		private final RuleCall cValueRICH_TEXTTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
		
		//RichStringLiteral:
		//	value=RICH_TEXT;
		@Override public ParserRule getRule() { return rule; }

		//value=RICH_TEXT
		public Assignment getValueAssignment() { return cValueAssignment; }

		//RICH_TEXT
		public RuleCall getValueRICH_TEXTTerminalRuleCall_0() { return cValueRICH_TEXTTerminalRuleCall_0; }
	}

	public class RichStringLiteralStartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RichStringLiteralStart");
		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
		private final RuleCall cValueRICH_TEXT_STARTTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
		
		//RichStringLiteralStart:
		//	value=RICH_TEXT_START;
		@Override public ParserRule getRule() { return rule; }

		//value=RICH_TEXT_START
		public Assignment getValueAssignment() { return cValueAssignment; }

		//RICH_TEXT_START
		public RuleCall getValueRICH_TEXT_STARTTerminalRuleCall_0() { return cValueRICH_TEXT_STARTTerminalRuleCall_0; }
	}

	public class RichStringLiteralEndElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RichStringLiteralEnd");
		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
		private final RuleCall cValueRICH_TEXT_ENDTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
		
		//RichStringLiteralEnd:
		//	value=RICH_TEXT_END;
		@Override public ParserRule getRule() { return rule; }

		//value=RICH_TEXT_END
		public Assignment getValueAssignment() { return cValueAssignment; }

		//RICH_TEXT_END
		public RuleCall getValueRICH_TEXT_ENDTerminalRuleCall_0() { return cValueRICH_TEXT_ENDTerminalRuleCall_0; }
	}

	public class RichStringLiteralInbetweenElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RichStringLiteralInbetween");
		private final Assignment cValueAssignment = (Assignment)rule.eContents().get(1);
		private final RuleCall cValueRICH_TEXT_INBETWEENTerminalRuleCall_0 = (RuleCall)cValueAssignment.eContents().get(0);
		
		//RichStringLiteralInbetween:
		//	value=RICH_TEXT_INBETWEEN;
		@Override public ParserRule getRule() { return rule; }

		//value=RICH_TEXT_INBETWEEN
		public Assignment getValueAssignment() { return cValueAssignment; }

		//RICH_TEXT_INBETWEEN
		public RuleCall getValueRICH_TEXT_INBETWEENTerminalRuleCall_0() { return cValueRICH_TEXT_INBETWEENTerminalRuleCall_0; }
	}

	public class RichVarPartElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "RichVarPart");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final Assignment cKeyAssignment_0 = (Assignment)cGroup.eContents().get(0);
		private final RuleCall cKeyIDTerminalRuleCall_0_0 = (RuleCall)cKeyAssignment_0.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Assignment cFormatAssignment_1_0 = (Assignment)cGroup_1.eContents().get(0);
		private final RuleCall cFormatSTRINGTerminalRuleCall_1_0_0 = (RuleCall)cFormatAssignment_1_0.eContents().get(0);
		private final Assignment cFormatterClassAssignment_1_1 = (Assignment)cGroup_1.eContents().get(1);
		private final CrossReference cFormatterClassNLSFormatterCrossReference_1_1_0 = (CrossReference)cFormatterClassAssignment_1_1.eContents().get(0);
		private final RuleCall cFormatterClassNLSFormatterQualifiedNameParserRuleCall_1_1_0_1 = (RuleCall)cFormatterClassNLSFormatterCrossReference_1_1_0.eContents().get(1);
		
		//RichVarPart:
		//	key=ID (format=STRING formatterClass=[NLSFormatter|QualifiedName]?)?;
		@Override public ParserRule getRule() { return rule; }

		//key=ID (format=STRING formatterClass=[NLSFormatter|QualifiedName]?)?
		public Group getGroup() { return cGroup; }

		//key=ID
		public Assignment getKeyAssignment_0() { return cKeyAssignment_0; }

		//ID
		public RuleCall getKeyIDTerminalRuleCall_0_0() { return cKeyIDTerminalRuleCall_0_0; }

		//(format=STRING formatterClass=[NLSFormatter|QualifiedName]?)?
		public Group getGroup_1() { return cGroup_1; }

		//format=STRING
		public Assignment getFormatAssignment_1_0() { return cFormatAssignment_1_0; }

		//STRING
		public RuleCall getFormatSTRINGTerminalRuleCall_1_0_0() { return cFormatSTRINGTerminalRuleCall_1_0_0; }

		//formatterClass=[NLSFormatter|QualifiedName]?
		public Assignment getFormatterClassAssignment_1_1() { return cFormatterClassAssignment_1_1; }

		//[NLSFormatter|QualifiedName]
		public CrossReference getFormatterClassNLSFormatterCrossReference_1_1_0() { return cFormatterClassNLSFormatterCrossReference_1_1_0; }

		//QualifiedName
		public RuleCall getFormatterClassNLSFormatterQualifiedNameParserRuleCall_1_1_0_1() { return cFormatterClassNLSFormatterQualifiedNameParserRuleCall_1_1_0_1; }
	}

	public class ValidIDElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "ValidID");
		private final RuleCall cIDTerminalRuleCall = (RuleCall)rule.eContents().get(1);
		
		//ValidID:
		//	ID;
		@Override public ParserRule getRule() { return rule; }

		//ID
		public RuleCall getIDTerminalRuleCall() { return cIDTerminalRuleCall; }
	}

	public class QualifiedNameElements extends AbstractParserRuleElementFinder {
		private final ParserRule rule = (ParserRule) GrammarUtil.findRuleForName(getGrammar(), "QualifiedName");
		private final Group cGroup = (Group)rule.eContents().get(1);
		private final RuleCall cValidIDParserRuleCall_0 = (RuleCall)cGroup.eContents().get(0);
		private final Group cGroup_1 = (Group)cGroup.eContents().get(1);
		private final Keyword cFullStopKeyword_1_0 = (Keyword)cGroup_1.eContents().get(0);
		private final RuleCall cValidIDParserRuleCall_1_1 = (RuleCall)cGroup_1.eContents().get(1);
		
		//QualifiedName:
		//	ValidID ("." ValidID)*;
		@Override public ParserRule getRule() { return rule; }

		//ValidID ("." ValidID)*
		public Group getGroup() { return cGroup; }

		//ValidID
		public RuleCall getValidIDParserRuleCall_0() { return cValidIDParserRuleCall_0; }

		//(=> "." ValidID)*
		public Group getGroup_1() { return cGroup_1; }

		//=> "."
		public Keyword getFullStopKeyword_1_0() { return cFullStopKeyword_1_0; }

		//ValidID
		public RuleCall getValidIDParserRuleCall_1_1() { return cValidIDParserRuleCall_1_1; }
	}
	
	
	public class PredefinedTypesElements extends AbstractEnumRuleElementFinder {
		private final EnumRule rule = (EnumRule) GrammarUtil.findRuleForName(getGrammar(), "PredefinedTypes");
		private final Alternatives cAlternatives = (Alternatives)rule.eContents().get(1);
		private final EnumLiteralDeclaration cANYEnumLiteralDeclaration_0 = (EnumLiteralDeclaration)cAlternatives.eContents().get(0);
		private final Keyword cANYANYKeyword_0_0 = (Keyword)cANYEnumLiteralDeclaration_0.eContents().get(0);
		private final EnumLiteralDeclaration cNUMBEREnumLiteralDeclaration_1 = (EnumLiteralDeclaration)cAlternatives.eContents().get(1);
		private final Keyword cNUMBERNUMBERKeyword_1_0 = (Keyword)cNUMBEREnumLiteralDeclaration_1.eContents().get(0);
		private final EnumLiteralDeclaration cDATEEnumLiteralDeclaration_2 = (EnumLiteralDeclaration)cAlternatives.eContents().get(2);
		private final Keyword cDATEDATEKeyword_2_0 = (Keyword)cDATEEnumLiteralDeclaration_2.eContents().get(0);
		private final EnumLiteralDeclaration cTEMPORALEnumLiteralDeclaration_3 = (EnumLiteralDeclaration)cAlternatives.eContents().get(3);
		private final Keyword cTEMPORALTEMPORALKeyword_3_0 = (Keyword)cTEMPORALEnumLiteralDeclaration_3.eContents().get(0);
		
		//enum PredefinedTypes:
		//	ANY | NUMBER | DATE | TEMPORAL;
		public EnumRule getRule() { return rule; }

		//ANY | NUMBER | DATE | TEMPORAL
		public Alternatives getAlternatives() { return cAlternatives; }

		//ANY
		public EnumLiteralDeclaration getANYEnumLiteralDeclaration_0() { return cANYEnumLiteralDeclaration_0; }

		//"ANY"
		public Keyword getANYANYKeyword_0_0() { return cANYANYKeyword_0_0; }

		//NUMBER
		public EnumLiteralDeclaration getNUMBEREnumLiteralDeclaration_1() { return cNUMBEREnumLiteralDeclaration_1; }

		//"NUMBER"
		public Keyword getNUMBERNUMBERKeyword_1_0() { return cNUMBERNUMBERKeyword_1_0; }

		//DATE
		public EnumLiteralDeclaration getDATEEnumLiteralDeclaration_2() { return cDATEEnumLiteralDeclaration_2; }

		//"DATE"
		public Keyword getDATEDATEKeyword_2_0() { return cDATEDATEKeyword_2_0; }

		//TEMPORAL
		public EnumLiteralDeclaration getTEMPORALEnumLiteralDeclaration_3() { return cTEMPORALEnumLiteralDeclaration_3; }

		//"TEMPORAL"
		public Keyword getTEMPORALTEMPORALKeyword_3_0() { return cTEMPORALTEMPORALKeyword_3_0; }
	}
	
	private final NLSElements pNLS;
	private final PackageDeclarationElements pPackageDeclaration;
	private final NLSBundleElements pNLSBundle;
	private final NLSFormatterElements pNLSFormatter;
	private final MessageEntryElements pMessageEntry;
	private final MessageParamElements pMessageParam;
	private final MessageElements pMessage;
	private final RichStringElements pRichString;
	private final RichStringLiteralElements pRichStringLiteral;
	private final RichStringLiteralStartElements pRichStringLiteralStart;
	private final RichStringLiteralEndElements pRichStringLiteralEnd;
	private final RichStringLiteralInbetweenElements pRichStringLiteralInbetween;
	private final RichVarPartElements pRichVarPart;
	private final ValidIDElements pValidID;
	private final QualifiedNameElements pQualifiedName;
	private final PredefinedTypesElements unknownRulePredefinedTypes;
	private final TerminalRule tRICH_TEXT;
	private final TerminalRule tRICH_TEXT_START;
	private final TerminalRule tRICH_TEXT_END;
	private final TerminalRule tRICH_TEXT_INBETWEEN;
	private final TerminalRule tIN_RICH_STRING;
	
	private final Grammar grammar;

	private final TerminalsGrammarAccess gaTerminals;

	@Inject
	public NLSDslGrammarAccess(GrammarProvider grammarProvider,
		TerminalsGrammarAccess gaTerminals) {
		this.grammar = internalFindGrammar(grammarProvider);
		this.gaTerminals = gaTerminals;
		this.pNLS = new NLSElements();
		this.pPackageDeclaration = new PackageDeclarationElements();
		this.pNLSBundle = new NLSBundleElements();
		this.pNLSFormatter = new NLSFormatterElements();
		this.pMessageEntry = new MessageEntryElements();
		this.pMessageParam = new MessageParamElements();
		this.pMessage = new MessageElements();
		this.pRichString = new RichStringElements();
		this.pRichStringLiteral = new RichStringLiteralElements();
		this.pRichStringLiteralStart = new RichStringLiteralStartElements();
		this.pRichStringLiteralEnd = new RichStringLiteralEndElements();
		this.pRichStringLiteralInbetween = new RichStringLiteralInbetweenElements();
		this.pRichVarPart = new RichVarPartElements();
		this.pValidID = new ValidIDElements();
		this.pQualifiedName = new QualifiedNameElements();
		this.unknownRulePredefinedTypes = new PredefinedTypesElements();
		this.tRICH_TEXT = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RICH_TEXT");
		this.tRICH_TEXT_START = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RICH_TEXT_START");
		this.tRICH_TEXT_END = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RICH_TEXT_END");
		this.tRICH_TEXT_INBETWEEN = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "RICH_TEXT_INBETWEEN");
		this.tIN_RICH_STRING = (TerminalRule) GrammarUtil.findRuleForName(getGrammar(), "IN_RICH_STRING");
	}
	
	protected Grammar internalFindGrammar(GrammarProvider grammarProvider) {
		Grammar grammar = grammarProvider.getGrammar(this);
		while (grammar != null) {
			if ("org.eclipse.fx.ide.l10n.NLSDsl".equals(grammar.getName())) {
				return grammar;
			}
			List<Grammar> grammars = grammar.getUsedGrammars();
			if (!grammars.isEmpty()) {
				grammar = grammars.iterator().next();
			} else {
				return null;
			}
		}
		return grammar;
	}
	
	@Override
	public Grammar getGrammar() {
		return grammar;
	}
	

	public TerminalsGrammarAccess getTerminalsGrammarAccess() {
		return gaTerminals;
	}

	
	//NLS:
	//	package=PackageDeclaration? "{" bundleList+=NLSBundle+ "}";
	public NLSElements getNLSAccess() {
		return pNLS;
	}
	
	public ParserRule getNLSRule() {
		return getNLSAccess().getRule();
	}

	//PackageDeclaration:
	//	"package" name=QualifiedName;
	public PackageDeclarationElements getPackageDeclarationAccess() {
		return pPackageDeclaration;
	}
	
	public ParserRule getPackageDeclarationRule() {
		return getPackageDeclarationAccess().getRule();
	}

	//NLSBundle:
	//	"bundle" name=ID "default" lang=ID "{" formatterList+=NLSFormatter* messageEntryList+=MessageEntry+
	//	("included-bundles" includedBundleList+=[NLSBundle|QualifiedName] (","
	//	includedBundleList+=[NLSBundle|QualifiedName])*)? "}";
	public NLSBundleElements getNLSBundleAccess() {
		return pNLSBundle;
	}
	
	public ParserRule getNLSBundleRule() {
		return getNLSBundleAccess().getRule();
	}

	//NLSFormatter:
	//	"formatter" name=ID classRef=QualifiedName;
	public NLSFormatterElements getNLSFormatterAccess() {
		return pNLSFormatter;
	}
	
	public ParserRule getNLSFormatterRule() {
		return getNLSFormatterAccess().getRule();
	}

	//MessageEntry:
	//	name=ID ("(" paramList+=MessageParam ("," paramList+=MessageParam)* ")")? ("{" messageList+=Message (","
	//	messageList+=Message)* "}" | "[" entryRef=[MessageEntry|QualifiedName] "]");
	public MessageEntryElements getMessageEntryAccess() {
		return pMessageEntry;
	}
	
	public ParserRule getMessageEntryRule() {
		return getMessageEntryAccess().getRule();
	}

	//MessageParam:
	//	predefined=PredefinedTypes var=ID;
	public MessageParamElements getMessageParamAccess() {
		return pMessageParam;
	}
	
	public ParserRule getMessageParamRule() {
		return getMessageParamAccess().getRule();
	}

	//Message:
	//	name=ID ":" message=RichString / *| '[' messageRef=[Message|QualifiedName] ']'* /;
	public MessageElements getMessageAccess() {
		return pMessage;
	}
	
	public ParserRule getMessageRule() {
		return getMessageAccess().getRule();
	}

	//RichString:
	//	expressions+=RichStringLiteral | expressions+=RichStringLiteralStart expressions+=RichVarPart?
	//	(expressions+=RichStringLiteralInbetween expressions+=RichVarPart?)* expressions+=RichStringLiteralEnd;
	public RichStringElements getRichStringAccess() {
		return pRichString;
	}
	
	public ParserRule getRichStringRule() {
		return getRichStringAccess().getRule();
	}

	//RichStringLiteral:
	//	value=RICH_TEXT;
	public RichStringLiteralElements getRichStringLiteralAccess() {
		return pRichStringLiteral;
	}
	
	public ParserRule getRichStringLiteralRule() {
		return getRichStringLiteralAccess().getRule();
	}

	//RichStringLiteralStart:
	//	value=RICH_TEXT_START;
	public RichStringLiteralStartElements getRichStringLiteralStartAccess() {
		return pRichStringLiteralStart;
	}
	
	public ParserRule getRichStringLiteralStartRule() {
		return getRichStringLiteralStartAccess().getRule();
	}

	//RichStringLiteralEnd:
	//	value=RICH_TEXT_END;
	public RichStringLiteralEndElements getRichStringLiteralEndAccess() {
		return pRichStringLiteralEnd;
	}
	
	public ParserRule getRichStringLiteralEndRule() {
		return getRichStringLiteralEndAccess().getRule();
	}

	//RichStringLiteralInbetween:
	//	value=RICH_TEXT_INBETWEEN;
	public RichStringLiteralInbetweenElements getRichStringLiteralInbetweenAccess() {
		return pRichStringLiteralInbetween;
	}
	
	public ParserRule getRichStringLiteralInbetweenRule() {
		return getRichStringLiteralInbetweenAccess().getRule();
	}

	//RichVarPart:
	//	key=ID (format=STRING formatterClass=[NLSFormatter|QualifiedName]?)?;
	public RichVarPartElements getRichVarPartAccess() {
		return pRichVarPart;
	}
	
	public ParserRule getRichVarPartRule() {
		return getRichVarPartAccess().getRule();
	}

	//ValidID:
	//	ID;
	public ValidIDElements getValidIDAccess() {
		return pValidID;
	}
	
	public ParserRule getValidIDRule() {
		return getValidIDAccess().getRule();
	}

	//QualifiedName:
	//	ValidID ("." ValidID)*;
	public QualifiedNameElements getQualifiedNameAccess() {
		return pQualifiedName;
	}
	
	public ParserRule getQualifiedNameRule() {
		return getQualifiedNameAccess().getRule();
	}

	//enum PredefinedTypes:
	//	ANY | NUMBER | DATE | TEMPORAL;
	public PredefinedTypesElements getPredefinedTypesAccess() {
		return unknownRulePredefinedTypes;
	}
	
	public EnumRule getPredefinedTypesRule() {
		return getPredefinedTypesAccess().getRule();
	}

	//terminal RICH_TEXT:
	//	"\'\'\'" IN_RICH_STRING* ("\'\'\'" | ("\'" "\'"?)? EOF);
	public TerminalRule getRICH_TEXTRule() {
		return tRICH_TEXT;
	} 

	//terminal RICH_TEXT_START:
	//	"\'\'\'" IN_RICH_STRING* ("\'" "\'"?)? "«";
	public TerminalRule getRICH_TEXT_STARTRule() {
		return tRICH_TEXT_START;
	} 

	//terminal RICH_TEXT_END:
	//	"»" IN_RICH_STRING* ("\'\'\'" | ("\'" "\'"?)? EOF);
	public TerminalRule getRICH_TEXT_ENDRule() {
		return tRICH_TEXT_END;
	} 

	//terminal RICH_TEXT_INBETWEEN:
	//	"»" IN_RICH_STRING* ("\'" "\'"?)? "«";
	public TerminalRule getRICH_TEXT_INBETWEENRule() {
		return tRICH_TEXT_INBETWEEN;
	} 

	//terminal fragment IN_RICH_STRING:
	//	"\'\'" !("«" | "\'") | "\'" !("«" | "\'") | !("«" | "\'");
	public TerminalRule getIN_RICH_STRINGRule() {
		return tIN_RICH_STRING;
	} 

	//terminal ID:
	//	"^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
	public TerminalRule getIDRule() {
		return gaTerminals.getIDRule();
	} 

	//terminal INT returns ecore::EInt:
	//	"0".."9"+;
	public TerminalRule getINTRule() {
		return gaTerminals.getINTRule();
	} 

	//terminal STRING:
	//	"\"" ("\\" . / * 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' * / | !("\\" | "\""))* "\"" | "\'" ("\\" .
	//	/ * 'b'|'t'|'n'|'f'|'r'|'u'|'"'|"'"|'\\' * / | !("\\" | "\'"))* "\'";
	public TerminalRule getSTRINGRule() {
		return gaTerminals.getSTRINGRule();
	} 

	//terminal ML_COMMENT:
	//	"/ *"->"* /";
	public TerminalRule getML_COMMENTRule() {
		return gaTerminals.getML_COMMENTRule();
	} 

	//terminal SL_COMMENT:
	//	"//" !("\n" | "\r")* ("\r"? "\n")?;
	public TerminalRule getSL_COMMENTRule() {
		return gaTerminals.getSL_COMMENTRule();
	} 

	//terminal WS:
	//	(" " | "\t" | "\r" | "\n")+;
	public TerminalRule getWSRule() {
		return gaTerminals.getWSRule();
	} 

	//terminal ANY_OTHER:
	//	.;
	public TerminalRule getANY_OTHERRule() {
		return gaTerminals.getANY_OTHERRule();
	} 
}
